#ifndef YTESTALIASTEMPLATE_H
#define YTESTALIASTEMPLATE_H

#include <iostream>
#include <vector>
using namespace std;

template<typename T>
using Vec = std::vector<T,std::allocator<T>>;

using Vec1 = std::vector<int>;

template<typename Container>
void printAlias(const Container &c)
{
    for(auto i:c)
    {
        cout<<i<<" ";
    }
    cout<<endl;
}

template<typename T, template<typename>
                      class Container>

class Xls{
public:
    Xls()
    {
        Container<T> c;
        for(int i = 0; i != 10; ++i)
            c.insert(c.end(),i);
       printAlias(c);
    }

};
template<typename Container>                
void testMove(Container c)
{
    // Container::iterator

   typedef typename iterator_traits<typename Container::iterator>::value_type Vty;
    for(long i = 0; i != 100; ++i)
       c.insert(c.end(),Vty());
    
}
void testAliasTemplate()
{

    testMove(std::vector<int>{12,23,4,5});

    Vec<int> v1{1,2,3,4,5,6};
    printAlias(v1);

    // Xls<int,Vec1> x1;


    Vec1 x2{12,12,12};
    printAlias(x2);
   
}
#endif